Telegram Group & Telegram Channel
Недавно я наткнулся на интересный вызов — обработать файл размером 12 ГБ, содержащий 1 миллиард строк формата <stationName>;<temperature>\n, с целью агрегировать минимальное, максимальное и среднее значения температуры для каждой станции. В своем блоге Jacky Efendi поделился своим опытом решения этой задачи с использованием Node.js, достигнув ускорения примерно в 30 раз по сравнению с базовой реализацией.

Jacky начал с базового подхода, используя встроенные модули Node.js для построчного чтения файла и хранения агрегированных данных в структуре Map(). Затем он провел профилирование кода с помощью Clinic.js Flame, чтобы определить узкие места производительности. Основное время выполнения занимала функция StringPrototypeSplit, используемая для разделения строк.

Для оптимизации Jacky предложил несколько улучшений:

1. Сокращение вызовов StringPrototypeSplit: уменьшение количества вызовов этой функции для повышения эффективности.
2. Более быстрые преобразования Buffer в числа: оптимизация процесса преобразования данных из буфера в числовые значения.
3. Параллелизация обработки: распределение работы между несколькими потоками или процессами для ускорения обработки больших объемов данных.

https://jackyef.com/posts/1brc-nodejs-learnings

✍️ @nodejs_lib



tg-me.com/nodejs_lib/338
Create:
Last Update:

Недавно я наткнулся на интересный вызов — обработать файл размером 12 ГБ, содержащий 1 миллиард строк формата <stationName>;<temperature>\n, с целью агрегировать минимальное, максимальное и среднее значения температуры для каждой станции. В своем блоге Jacky Efendi поделился своим опытом решения этой задачи с использованием Node.js, достигнув ускорения примерно в 30 раз по сравнению с базовой реализацией.

Jacky начал с базового подхода, используя встроенные модули Node.js для построчного чтения файла и хранения агрегированных данных в структуре Map(). Затем он провел профилирование кода с помощью Clinic.js Flame, чтобы определить узкие места производительности. Основное время выполнения занимала функция StringPrototypeSplit, используемая для разделения строк.

Для оптимизации Jacky предложил несколько улучшений:

1. Сокращение вызовов StringPrototypeSplit: уменьшение количества вызовов этой функции для повышения эффективности.
2. Более быстрые преобразования Buffer в числа: оптимизация процесса преобразования данных из буфера в числовые значения.
3. Параллелизация обработки: распределение работы между несколькими потоками или процессами для ускорения обработки больших объемов данных.

https://jackyef.com/posts/1brc-nodejs-learnings

✍️ @nodejs_lib

BY Node JS




Share with your friend now:
tg-me.com/nodejs_lib/338

View MORE
Open in Telegram


Node JS Telegram | DID YOU KNOW?

Date: |

Launched in 2013, Telegram allows users to broadcast messages to a following via “channels”, or create public and private groups that are simple for others to access. Users can also send and receive large data files, including text and zip files, directly via the app.The platform said it has more than 500m active users, and topped 1bn downloads in August, according to data from SensorTower.

China’s stock markets are some of the largest in the world, with total market capitalization reaching RMB 79 trillion (US$12.2 trillion) in 2020. China’s stock markets are seen as a crucial tool for driving economic growth, in particular for financing the country’s rapidly growing high-tech sectors.Although traditionally closed off to overseas investors, China’s financial markets have gradually been loosening restrictions over the past couple of decades. At the same time, reforms have sought to make it easier for Chinese companies to list on onshore stock exchanges, and new programs have been launched in attempts to lure some of China’s most coveted overseas-listed companies back to the country.

Node JS from sg


Telegram Node JS
FROM USA